#define _GNU_SOURCE
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>

#define LOG(format, ...) printf("[%s:%d]: " format, __FILE__, __LINE__, ##__VA_ARGS__)

int main()
{
    LOG("%s-%d\n", "snowdragon", 8888);
    LOG("\n");
    return 0;
}




void MyCPrintNum(int count, ...)
{
    va_list ap;
    va_start(ap, count);
    for(int i = 0; i < count; ++i)
    {
        int num = va_arg(ap, int);
        printf("%d:%d\n", i, num);
    }
    va_end(ap);
    printf("\n");
}

// int main()
// {
//     MyCPrintNum(1, 8888);
//     MyCPrintNum(3, 6, 66, 666);
//     MyCPrintNum(5, 1, 2, 3, 4, 5);

//     return 0;
// }




// #define _GNU_SOURCE

void MyCPrint(const char* format, ...)
{
    va_list ap;
    va_start(ap, format);
    char* res = NULL;
    int ret = vasprintf(&res, format, ap);
    if(ret != -1)
        printf("%d: %s\n", ret, res);
    free(res);
    va_end(ap);
}

// int main()
// {
//     MyCPrint("%s %s,%d", "snowdragon", "writed", 8888);
//     return 0;
// }